U.S. patent applications Ser. Nos. 10/429,930 and 10/429,932, now U.S. Pat. Nos. 7,240,228 and 7,221,331, respectively, are generally directed towards the concept of computer systems having auxiliary processing and auxiliary mechanisms that provide some auxiliary computing functionality 25 to a main computer system. For example, a small LCD on the lid or side of a laptop computer can provide a user with useful information, such as a meeting location and time, even when the main computer display is not easily visible, e.g., when a laptop computer's lid is closed and/or the main computer is powered down. Controls such as a set of user—selectable responses or supported actions, such as in the form of buttons may be provided to allow the user to interact with the auxiliary device, such as to choose a response to a notification, view different types of data, scroll through appointments among calendar data, read email messages, read directions, and so forth.
Somewhat similar to an auxiliary LCD screen built into a mobile host computer is a mobile telephone, a music playing device, a pocket-sized personal computer, a personal digital assistant or the like, which can each serve as an auxiliary device to a main computer system when coupled to it, such as physically and/or via a wireless (e.g., Bluetooth or infrared) link, or at any point after being coupled to the computer, if the device persists data from the computer, as long as the device is programmed to allow its display and/or other functionality to be leveraged by the main computer. In general, any device with I/O capabilities that can interface in virtually any way with a computer system can potentially serve as an auxiliary computing device.
However, while there are potentially many varieties of devices that can serve as an auxiliary display for a computer system, there is currently no existing platform or API (application programming interface) for programs on the main computer system to interact with auxiliary displays. Existing systems are either closed, whereby ISVs (independent software vendors) are not able to extend the functionality of the platform, or not designed specifically for the types of interactions common with auxiliary displays, and are thus neither simple nor consistent to use.
What is needed is a way for programs running on the main computer system to simply and consistently interact with various types of auxiliary displays, regardless of the differences between various device implementations. The applications should not be required to deal with the specific capabilities of each device, but if desired, should be able to query device capabilities to display customized information on each device.